import { defineStore } from 'pinia'
import { loginAPI } from '@/apis/login.js'
import { ref } from 'vue'
import { useCartStore } from './cartStore'
import { mergeCartAPI } from '@/apis/cart'

export const useUserStore = defineStore('user',() => {
    const cartStore = useCartStore()
    const userInfo = ref({})

    const getUserInfo = async ({account, password}) => {
        const res = await loginAPI({account, password})
        userInfo.value = res.data.result
        await mergeCartAPI(cartStore.cartList.map(item => {
            return {
                skuId: item.skuId,
                selected: item.select,
                count: item.count
            }
        }))
        cartStore.upDateCartList()
    }
    const clearUserInfo = () => {
        userInfo.value = {}
        cartStore.clearCart()
    }
    return {
        clearUserInfo,
        getUserInfo,
        userInfo,
    }
},
{
    persist: true,
})